<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of UsuarioConstrole
 *
 * @author Administrador
 */
require_once 'Controler.php';
require_once 'DAO/UsuarioDAO.php';
require_once 'Validacao.php';
require_once 'libs/util.php';

class UsuarioControle extends Controler {
    
    /**
     * Retorna uma instancia da classe
     * @return UsuarioControle 
     */
    public static function singleton(){
        if (self::$obj == null) {
            self::$obj = new UsuarioControle();
        }
        return self::$obj;
    }
    
    public function __construct(){
        $this->dao = new UsuarioDAO();
        $this->page= Util::singleton();
    }
    
    
    /**
     *Função que contém o formulário para o cadastro de usuários 
     */
     public function cadastro($action="index.php"){
    /*inicio do formulário*/
        echo "<form action='{$action}' method='post' id='cadastro' >";
        //echo "<div><br>";

        //dados pessoais
        echo "<div class='modal hide' id='idModal' tabindex='0' role='dialog' aria-labelledby='meuModal' aria-hidden='true'>";//a
        echo "<div class='modal-header'>";//a
        echo "<button type='button' class='close' data-dismiss='modal' aria-hidden='true'>x</button>";
        echo "<h3>Cadastro de usuário</h3>";
        echo "</div>";//f
        echo "<div class='modal-body'>";//a
        echo "<label for='nome'>Nome</label> ";
        echo "<input type='text' name='nomecad' class='span3'>";
        echo "<label for='sobrenomenome'>Sobrenome</label> ";
        echo "<input type='text' name='sobrenomecad' class='span3'>";
        echo "<label for='email'>E-mail</label> ";
        echo "<input type='text' name='emailcad' class='span3'><br>";
        echo "<label for='senha'>Senha</label> ";
        echo "<input type='password' name='senhacad'>";
        //echo "<label for='senha'>Confirme sua senha</label> ";
        //echo "<input type='password' name='confsenhacad'><br>";
        echo "</div>";//f
        echo "<div class='modal-footer'>";//a
        echo "<button class='btn' data-dismiss='modal' aria-hidden='true'>Cancelar</button>";
        echo "<button class='btn btn-primary' title='Salvar os dados inseridos'>Salvar</button>";
        echo "</div>";//f
        echo "</div>";//f
        echo "</form>";
    }
    
    /**
     * Recebe um vetor informando os campos que deverão ser validados
     * @param String $tipo Como sera a validação: cadastro, alteracao, login
     * @return Usuario 
     */
    public function validar($tipo) {
        $user = new Usuario();
        $validador=new Validacao();
        
        if ($tipo == 'cadastro'){
            //verifica nome
            if ($validador->validaNomeCad($_POST['nomecad'])){
                $user->setNome($_POST['nomecad']);
            }else{
                $this->adicionaErro("O nome deve conter entre 2 a 15 caracteres e não pode possuir números ou caracteres especiais ($,#,@,*,?)");
            }
            //verifica sobrenome
            if($validador->validaSobrenomeCad($_POST['sobrenomecad'])){
                $user->setSobrenome($_POST['sobrenomecad']);
            }else{
                $this->adicionaErro("O sobrenome deve conter entre 2 a 40 caracteres e não pode possuir números ou caracteres especiais ($,#,@,*,?)");
            }
            //verifica email
            if($validador->validaEmailCad($_POST['emailcad'])){
                $user->setEmail($_POST['emailcad']);
            }else{
                $this->adicionaErro("O email não é válido!");
            }
            //verifica senha
            if($validador->validaSenhaCad($_POST['senhacad'])){
                $user->setSenha($_POST['senhacad']);
            }else{
                $this->adicionaErro("A senha deve conter entre 8 a 20 caracteres");
            }
            
        }
        return $user;
    }
    
    public function salvar(Usuario $objUsuario){ 
       $id=$this->dao->inserir($objUsuario);
       $objUsuario->setId($id);
       $_SESSION['autenticado'] = true;
       $_SESSION['usuario']=$objUsuario;
       Util::singleton()->redirecionar('principal.php');
    }
    
    public function logar(Usuario $objUsuario){
       // $this->dao=new UsuarioDAO();
        $result=$this->dao->logar($objUsuario);
        //var_dump($result);
        if ($result["email"]==$objUsuario->getEmail() && $result["senha"]==$objUsuario->getSenha()){
            $objUsuario->setId($result["idusuario"]);
            $objUsuario->setNome($result["nome"]);
            $objUsuario->setSobrenome($result["sobrenome"]);
            $objUsuario->setFoto($result["foto"]);
            $_SESSION['autenticado'] = true;
            $_SESSION['usuario']=$objUsuario;
            Util::singleton()->redirecionar('principal.php');
            
        }else{
           echo "<script type='text/javascript'>alert('Acesso Negado!');</script>"; 	
           Util::singleton()->redirecionar('index.php');               
        }
    }
}

?>
